1. The Field of the Invention
The present invention relates to networks enabled with digital video, and more particularly to a video plug-in for a web browser.
2. The Related Art
Video teleconferencing is typically implemented by sending video transmissions over standard telephone connections. In the typical video teleconferencing set-up each user has a video camera that transmits an image over standard telephone lines to a monitor at the site of the other user. Video teleconferencing over telephone lines, however, tends to limit users to configurations involving only two sites.
The rise of the Internet and inexpensive video cameras presently allows digitized video images to be transmitted across the Internet or any other wide area network (WAN). Video conferencing over a WAN involves sending a digitized video signal from a video camera to an Internet Service Provider (ISP) connected to the Internet or, more generally, to a server connected to a WAN. The digitized video signal is sent across the WAN to one or more computers that may each display the video signal on a monitor. Information such as digitized video may be transmitted across a WAN by packet switching between servers according to the TCP/IP protocol. This arrangement allows multiple computers to simultaneously share video with one another. Therefore, video conferencing over a WAN has advantages over video teleconferencing in that more sites than just two can be conveniently and inexpensively connected. Vide conferencing over a WAN, however, is still limited to sharing real-time images and does not take advantage of image enhancement possibilities.
Other applications for digital video over the Internet and WANs have lead to increased sharing of video files and the rise of xe2x80x9cwebcams.xe2x80x9d Video files, pre-recorded video ranging from several seconds to many minutes in length, may be transmitted from a sender to one or more receivers simultaneously across the Internet. A receiver may store the video file and view it repeatedly, provided that the receiver has the necessary software to play the video file. A video file may also be made available, for instance, on a webpage or a FTP site located on a remote server so that multiple users may choose to download it at their convenience.
A webcam is a digital video camera set up to provide live video to the Internet or a WAN such that any user connected to the network may choose to view what the camera is imaging. Webcams are increasingly used to make available, for example, live images of traffic conditions, weather, public meetings, and fish bowls, to users anywhere in the world with Internet access. To simplify the viewing process, some web browsers include a module designed to display live video, so that the user need not run a separate software program. It should be noted that as browsers become increasingly more powerful they become increasingly similar to operating systems. For the purposes of this application, a browser could be an operating system so long as the operating system includes the capabilities typically attributable to browsers such as the ability to connect to remote sites across a WAN and accept software extension modules.
Software extension modules, commonly known as a plug-ins, provide additional functionalities to other software programs. A plug-in, once installed, becomes a seamless part of the software within which it is installed. Plug-in programs may themselves accept additional plug-ins to expand their own capabilities. For example, ShockWave produced by Macromedia, a popular multimedia player plug-in for web browsers, has discrete modules for specific purposes, for example one module for playing sounds and another module for playing animations. ShockWave may be extended with additional plug-ins that act as further modules for other media applications such as live video.
Like text files, sound files, video files, and live video, anything in a digitized format may be sent across a WAN. Consequently, plug-ins are frequently made available over the Internet for downloading from a remote server. Other programs may also be obtained via the Internet. One such program designed to perform a specific operation is called a script. An example of a script is an Applet, a program written in the Java programming language, which can be distributed over a WAN and executed by a Java-enabled web browser. Scripts written in other programming languages may also be distributed over a WAN.
A script may require certain plug-ins to be available in order to perform its function properly. For example, one might design a script to guide a user to select an appropriate automobile for their needs by prompting the user to answer specific questions. As part of the selection process the script might display images of vehicles the user has to choose from. In order to display those images, the script would access the plug-in that enables image viewing and supply that plug-in with file names and locations of the images to be displayed. Those addresses may be on the same computer as the browser, or on a network server that the computer is attached to, or on a remote server accessible over a WAN.
The Internet has also expanded a user""s options for communicating with others, in addition to providing a means for accessing programs and data from remote sites. Accordingly, a person can send and receive electronic messages (xe2x80x9ce-mailxe2x80x9d) over a WAN with typically only a brief time delay. Electronic messages may also be shared in real-time between individuals connected to the Internet; this process has come to be referred to as xe2x80x9cchatxe2x80x9d and is frequently conducted in xe2x80x9cchatrooms,xe2x80x9d that are dedicated websites where multiple individuals can converse simultaneously. A chatroom is the functional equivalent of the telephone party-line, except that the conversation is carried out with text rather than with voice.
As communications technologies have been developed for the Internet those technologies have been applied to gaming. It is now possible to download gaming software from a website and play it on a host computer. It is also possible to play a game over the Internet where the gaming software is located on a remote server rather than on the user""s computer. Further, multiple players in multiple locations may take part in the same game over the Internet.
In addition to developments concerning the Internet, the recent development of low-cost image sensors used in cameras has lead companies to develop more products that include imaging. For instance, Nintendo offers a black and white camera that attaches to a Game Boy personal video game system and a paint program that allows a user to manipulate and alter the images. The Game Boy camera has a lens that rotates so the user can obtain self-portraits. Mattel Media, too, offers a Barbie Digital Camera that takes color images and comes with software that lets children edit their images into Barbie scenes and to further print them on cards and stickers.
Further advancements have also been made in image analysis and recognition. For example, Scientific American reported on the development of a system called Person Finder that can track one person as he or she moves around in a room (xe2x80x9cSmart Rooms,xe2x80x9d Scientific American, April 1996). The system records the image of the person and the room, determines where the person is, creates a virtual model of the person, and projects the model into a virtual world so that, for instance, imaginary characters can interact with the smart-room user.
Absent from this mix of digital technologies is software that will allow one or more live video images from one or more personal digital video cameras to be incorporated into a virtual environment displayed within one or more browsers so that the person or people can use their image or images to control events within the virtual environment.
The present invention describes a video enhancer for a web browser. The video enhancer consists of a library of video enhancement routines, a browser extension module coupling the library of routines to the web browser, and a video enhanced script coupled to the browser extension so that it may utilize at least one of the enhancement routines within the library to provide an enhanced video display within the web browser. In some embodiments of the present invention the library of routines are provided as dynamically linked libraries (DLLs) such as C++ DLLs. In some embodiments the browser extension module includes a translator and a multimedia extension module, such as the ShockWave plug-in produced by Macromedia. Other embodiments may be fully integrated to be able to interface directly with a web browser and not need the multimedia extension module.
The video enhancer of the present invention includes a video enhanced script that may be an Applet running in conjunction with the operating web browser or running independently. The video enhanced script calls upon enhanced video routines. Some routines, for instance, provide the ability to identify and track the head of a person in front of a video camera, while other routines may provide the ability to determine when at least two tracked features collide.
Another embodiment of the present invention is a computer-implemented system for playing a game. This computer-implemented system includes a first computer, a first video camera coupled to the first computer, a web browser operating on the first computer, and a video enhancer for the web browser. The video enhancer further includes a library of video enhancement routines that may be in communication with the first video camera, a browser extension module coupling the library to the web browser, and a video enhanced script. The video enhanced script is itself coupled to the web browser and may use at least one enhancement routine of the plurality of routines in the library to provide enhanced video displays within the web browser. Additional embodiments of the computer-implemented system also include a wide area network (WAN) and a server connected to the WAN, with the first computer being connected to the WAN.
In some embodiments of the computer-implemented system the video enhanced script allows the game to be played while the video enhanced script is being downloaded to the first computer from the server via the WAN. In other embodiments the video enhanced script allows a player to send information, such as a cookie, to a server to be retained for future reference after a game is over. In further embodiments the video enhanced script maintains communication with a remote server through the operating web browser. Yet other embodiments of the computer-implemented system further include a second computer that may include a video camera, and is configured like the first computer, though it need not include the video enhancer if the first computer is so equipped.
Another embodiment of the present invention is a method for video enhancement over a wide area network. The method includes providing a web browser, providing a video enhancer for the web browser, opening the web browser, and executing a selected video enhanced script. In some embodiments the method for video enhancement also includes, before executing the script, determining whether a more current version of the video enhancer is available. If an update is available the user is queried whether the more current version should be obtained, and if the user requests the update it is obtained. In some embodiments obtaining the video enhancer update includes downloading the update from a server connected to a WAN and installing the update within the web browser.
In some embodiments of the method for video enhancement the process of executing the selected script further includes passing a command from the selected script to the browser extension to be executed, where the command specifies at least one video enhancement routine and includes parameters required by those routines. In other embodiments executing the selected script instead involves passing a command from the selected script to a multimedia extension module, passing the command from the multimedia extension module to a translator, and executing at least one video enhancement routine.
A further embodiment of the present invention is an article of manufacture comprising a computer readable medium containing code segments for providing a video enhancer for a web browser. The video enhancer includes a library of at least one video enhancement routines and a browser extension module operative to couple the library to the web browser. In some embodiments the video enhancer further includes at least one video enhanced script that may be coupled to the web browser to utilize at least one video enhancement routine.
These and other aspects and advantages of the present invention will become more apparent when the Description below is read in conjunction with the accompanying Drawings.